Tessellations using the Sequence Function

Zoom in to the original shape ans show the Control Points to alter the shape

Base Vectors

Original

Shape Points

Control Points

Method:  Sequence[Translate[Sequence[Translate[poly1, i a], i, 0, m],j*b],j,0,n]

Lattice

O = (-4.92352763061029, -1.4347297737229021)
A = (3.146874364921488, -0.4584714678118025)
B = (-4.598108195306589, 4.487903948804435)
a_1 = Segment(O, A)
b_1 = Segment(O, B)
c = Line(B, a_1)
d = Line(A, b_1)
C = Intersect(c, d)
e = Segment(B, C)
f = Segment(C, A)
a = Vector(O, A)
b = Vector(O, B)
g = false
m = 14 (slider from 0 to 30, step 1)
n = 14 (slider from 0 to 30, step 1)
E = (-2.320172148180684, 4.552987835865176)
F = (-3.3615143411525263, 3.6418134170148155)
G = (-1.799501051694763, 3.7068973040755555)
H = (-1.018494406965881, 3.3814778687718556)
I = (-2.515423809362905, 2.990974546407416)
J = (-1.8645849387555034, 2.340135675800016)
K = (-2.9059271317273456, 1.8845484663748362)
h = PolyLine(B, E, F, G, H, I, J, K, O)
C' = Translate(B, a)
E' = Translate(E, a)
F' = Translate(F, a)
G' = Translate(G, a)
H' = Translate(H, a)
I' = Translate(I, a)
J' = Translate(J, a)
K' = Translate(K, a)
A' = Translate(O, a)
h' = PolyLine(C', E', F', G', H', I', J', K', A')
L = Midpoint(e)
M = Midpoint(a_1)
u = Vector(M, L)
N = (-2.320172148180684, 0.7130384992815171)
O_1 = (-0.888326632844401, 0.3876190639778172)
P = (-0.3550501865057507, 2.1751277017939596)
Q = (0.28318333424892206, 1.2337095957674369)
R = (1.0641899789778035, 2.665555111103716)
S = (0.9991060919170636, 0.19236740279559728)
T = (1.715028849585205, 1.9496323534355762)
U = (2.2356999460711258, 0.6479546122207771)
i = PolyLine(O, N, O_1, P, Q, R, S, T, U, A)
A'_1 = Translate(O, u)
N' = Translate(N, u)
O' = Translate(O_1, u)
P' = Translate(P, u)
Q' = Translate(Q, u)
R' = Translate(R, u)
S' = Translate(S, u)
T' = Translate(T, u)
U' = Translate(U, u)
B' = Translate(A, u)
i' = PolyLine(A'_1, N', O', P', Q', R', S', T', U', B')
poly1, a_2, k', j', i'_1, h'_1, g', f', e', c_1, u', t', s', r', q', p', o', n', b_2, e_1, f_1, g_1, h_1, i_1, j, k, o, n_1, o_1, p, q, r, s, t, u_1 = Polygon(A, K', J', I', H', G', F', E', C, U', T', S', R', Q', P', O', N', B, E, F, G, H, I, J, K, O, N, O_1, P, Q, R, S, T, U)
l = true
v = false
w = false
list1 = Sequence(Translate[Sequence[Polygon[Translate[A, Vector[i * a]], Translate[K', Vector[i * a]], Translate[J', Vector[i * a]], Translate[I', Vector[i * a]], Translate[H', Vector[i * a]], Translate[G', Vector[i * a]], Translate[F', Vector[i * a]], Translate[E', Vector[i * a]], Translate[C, Vector[i * a]], Translate[U', Vector[i * a]], Translate[T', Vector[i * a]], Translate[S', Vector[i * a]], Translate[R', Vector[i * a]], Translate[Q', Vector[i * a]], Translate[P', Vector[i * a]], Translate[O', Vector[i * a]], Translate[N', Vector[i * a]], Translate[B, Vector[i * a]], Translate[E, Vector[i * a]], Translate[F, Vector[i * a]], Translate[G, Vector[i * a]], Translate[H, Vector[i * a]], Translate[I, Vector[i * a]], Translate[J, Vector[i * a]], Translate[K, Vector[i * a]], Translate[O, Vector[i * a]], Translate[N, Vector[i * a]], Translate[O_1, Vector[i * a]], Translate[P, Vector[i * a]], Translate[Q, Vector[i * a]], Translate[R, Vector[i * a]], Translate[S, Vector[i * a]], Translate[T, Vector[i * a]], Translate[U, Vector[i * a]]], i, 0, m], Vector[j * b]], j, 0, n)
z = false